SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE Proc [dbo].[SP_TXMVTO_CNTB_Q35]        
/*-------------------------------------------------------------------*/            
/*----- Empresa           : OFISIS S.A.                          ----*/            
/*----- Cliente           : OFISIS S.A.                          ----*/            
/*----- Sistema           : Contabilidad                         ----*/            
/*----- Modulo            : Empresa                              ----*/            
/*----- Programa          : Reporte Diferencia de Cambio         ----*/            
/*----- Nombre            : SP_TXMVTO_CNTB_Q35                  ----*/            
/*----- Script            : TXMVTO_CNTB                          ----*/            
/*----- Desarrollado por  : Mariano Chavez Valdez                ----*/            
/*----- Fecha             : 04/12/1999                           ----*/            
/*----- Base de Datos     : MS SQL Server                        ----*/            
/*----- Version BD        : 7.0                                  ----*/            
/*-------------------------------------------------------------------*/            
/*-------------------------------------------------------------------*/            
/*----- Modificado 1 por  : Marco Acuna Paredes                 ----*/            
/*----- Fecha Modifica    : 23/12/2002                           ----*/            
/*----- Detalle Modifica  : Inicializacion de Variables          ----*/            
/*-------------------------------------------------------------------*/            
/*-------------------------------------------------------------------*/          
/*----- Modificado 2 por : LGP                    ----*/          
/*----- Fecha Modifica   : 30/09/2003                            ----*/          
/*----- Detalle Modifica : Con Operacion de Pendientes           ----*/          
/*-------------------------------------------------------------------*/          
/*-------------------------------------------------------------------*/          
/*----- Modificado 3 por : Percy Garcia                   ----*/          
/*----- Fecha Modifica   : 18/12/2003                            ----*/          
/*----- Detalle Modifica : Se valido que muestre el factor de    ----*/          
/*----- cambio que utiliza realmente (caso saldo > 0 utiliza el tipo venta solo para ctas. de banco),    ----*/          
/*----- para obtener el factor de cambio se sac› tambi,n el factor de cambio de la moneda de contabilidad  ----*/          
/*----- en el caso del asto. de ajuste se agreg› una variable para que no se pierda el tipo operacion (CAR) (ABO) ----*/          
/*-------------------------------------------------------------------*/          
/*-------------------------------------------------------------------*/          
/*----- Modificado 4 por : PDGV                                  ----*/          
/*----- Fecha Modifica   : 20/10/2004                            ----*/          
/*----- Detalle Modifica : se valido para el caso que el asto de ----*/    
/*----- dif. de cambio se encuentre en el ORI                    ----*/          
/*-------------------------------------------------------------------*/          
/*-------------------------------------------------------------------*/          
/*----- Drop proc SP_TXMVTO_CNTB_Q35                           ----*/            
/*----- Grant all on SP_TXMVTO_CNTB_Q35 to PUBLIC               ----*/            
-- EXEC SP_TXMVTO_CNTB_Q35 '01', 1, 2010, 1, '01213','96582','1','D', 'T', ''            
/*-------------------------------------------------------------------*/            
@ISCO_EMPR       TD_VC_002,            
@INNU_CNTB_EMPR  TD_IN_001_CONT,            
@INNU_ANNO       TD_IN_004_ANNO,            
@INNU_MESE       TD_IN_002_MESE,            
@ISCO_CNTA_INIC  TD_VC_020,            
@ISCO_CNTA_FINA  TD_VC_020,            
@ISTI_ORDE       TD_VC_010,            
@ISTI_INFO       TD_VC_001,  -- D : DETALLADO, R : RESUMIDO             
@ISTI_OPER       TD_VC_001,  -- T : TOTAL, P: PARCIAL          
@ISCO_OPER       TD_VC_003          
--WITH ENCRYPTION        
As            
Create Table #TWMVTO_CNTB_Q20_1            
(NU_MESE          Integer,            
 CO_OPRC_CNTB     Varchar(03),            
 NU_ASTO          Varchar(10),            
 CO_CNTA_EMPR     Varchar(20),            
 TI_AUXI_EMPR     Varchar(01) ,            
 CO_AUXI_EMPR     Varchar(20) ,            
 TI_DOCU          Varchar(03) ,            
 NU_DOCU          Varchar(20) ,            
 FA_CAMB          Numeric(15, 6),            
 IM_PROV_ORIG     Numeric(16, 4),            
 IM_PROV_CNTB     Numeric(16, 4),            
 IM_ANTE_ORIG     Numeric(16, 4),            
 IM_ANTE_CNTB     Numeric(16, 4),            
 IM_AJUS_CNTB     Numeric(16, 4),            
 FA_CAMB_FINA     Numeric(15, 6),            
 IM_SALD_ORIG     Numeric(16, 4),          
 IM_SALD_CNTB     Numeric(16, 4))            
            
Declare            
@CSCO_CNTA_EMPR  TD_VC_020,            
@CSTI_AUXI_EMPR  TD_VC_001,             
@CSCO_AUXI_EMPR  TD_VC_020,             
@CSTI_DOCU       TD_VC_003,             
@CSNU_DOCU       TD_VC_020,             
@CDFE_ASTO_CNTB  TD_DT_001,             
@CNNU_ANNO       TD_IN_004_ANNO,            
@CNNU_MESE       TD_IN_002_MESE,             
@CSCO_OPRC_CNTB  TD_VC_003,             
@CSST_CNTA_CTES  TD_VC_003,             
@CSNU_ASTO       TD_VC_010,             
@CSTI_OPER       TD_VC_003,             
@CNIM_MVTO_CNTB  TD_NU_016_004,             
@CNIM_MVTO_ORIG  TD_NU_016_004,             
@CNFA_CAMB       TD_NU_015_006,            
          
@VSCO_CNTA_EMPR_0001   TD_VC_020,             
@VSTI_AUXI_EMPR_0001   TD_VC_001,             
@VSCO_AUXI_EMPR_0001   TD_VC_020,             
@VSTI_DOCU_0001        TD_VC_003,             
@VSNU_DOCU_0001        TD_VC_020,             
@VDFE_ASTO_CNTB_0001   TD_DT_001,             
@VNNU_ANNO_0001        TD_IN_004_ANNO,            
@VNNU_MESE_0001        TD_IN_002_MESE,            
@VSCO_OPRC_CNTB_0001   TD_VC_003,             
@VSNU_ASTO_0001        TD_VC_010,             
@VSTI_OPER_0001   TD_VC_003,             
@VSTI_OPER_0002   TD_VC_003,             
@VNIM_MVTO_CNTB_0001   TD_NU_016_004,            
@VNIM_MVTO_ORIG_0001   TD_NU_016_004,            
@CNFA_CAMB_0001        TD_NU_015_006,            
          
@VNFA_CAMB_PROV   TD_NU_015_006,           
@VNIM_PROV_ORIG   TD_NU_016_004,           
@VNIM_PROV_CNTB   TD_NU_016_004,           
@VNIM_ANTE_ORIG   TD_NU_016_004,           
@VNIM_ANTE_CNTB   TD_NU_016_004,           
@VNIM_AJUS        TD_NU_016_004,           
@VNFA_CAMB_FINA   TD_NU_015_006,           
@VNIM_FINA_ORIG   TD_NU_016_004,           
@VNIM_FINA_CNTB   TD_NU_016_004,           
@VSDE_REGI        TD_VC_100,           
@VSDE_REGI_CAMB   TD_VC_100,           
@VSCO_MONE        TD_VC_003,           
@VSCO_OPRC_CNTB   TD_VC_003,           
@VSCO_OPRC_PEND   TD_VC_003,           
@VSCO_OPRC_AJUS   TD_VC_003,           
@VSST_STAT        TD_VC_001,           
@VNFA_CMPR_CNTB   TD_NU_015_006,           
@VNFA_VNTA_CNTB   TD_NU_015_006,           
@VNFA_CMPR_REFE   TD_NU_015_006,            
@VNFA_VNTA_REFE   TD_NU_015_006,            
@VNNU_REGI        TD_IN_001,     
@CSST_DIFE_CAMB   TD_VC_001                 
    
            
Select @VNIM_ANTE_ORIG = 0.00, @VNIM_ANTE_CNTB = 0.00,             
       @VNIM_AJUS = 0.00,      @VNIM_FINA_ORIG = 0.00,            
       @VNIM_FINA_CNTB = 0.00            
            
Select @VSCO_MONE =CO_MONE             
From   TTCNTB_EMPR            
Where  CO_EMPR = @ISCO_EMPR            
And    NU_CNTB_EMPR = @INNU_CNTB_EMPR            
          
If @ISTI_OPER = 'T'            
 Begin          
  Select @VSCO_OPRC_CNTB = CO_OPRC_CNTB            
  From   TTIDEN_OPER            
  Where  CO_EMPR= @ISCO_EMPR            
  And    NU_CNTB_EMPR= @INNU_CNTB_EMPR            
  And    ID_OPRC ='003'            
          
  Select @VSCO_OPRC_PEND = CO_OPRC_CNTB            
  From   TTIDEN_OPER            
  Where  CO_EMPR= @ISCO_EMPR            
  And    NU_CNTB_EMPR= @INNU_CNTB_EMPR            
  And    ID_OPRC ='027'            
 End          
Else          
 Begin          
  Select @VSCO_OPRC_CNTB = @ISCO_OPER          
  Select @VSCO_OPRC_PEND = @ISCO_OPER          
 End          
          
Select @VNIM_PROV_CNTB = 0.00            
Select @VNIM_PROV_ORIG = 0.00            
          
-- SACA EL FACTOR MENSUAL DE LA MONEDA DE LA CONTABILIDAD          
Select @VNFA_CMPR_CNTB = 1          
Select @VNFA_VNTA_CNTB = 1          
Select @VNFA_CMPR_CNTB = IsNull(FA_CAMB_CMPR, 1),          
       @VNFA_VNTA_CNTB = IsNull(FA_CAMB_VNTA, 1)          
From TCFACT_CIER          
Where CO_MONE = @VSCO_MONE          
AND NU_ANNO = @INNU_ANNO          
AND NU_MESE = @INNU_MESE          
-- SACA EL FACTOR MENSUAL DE LA MONEDA DE LA CONTABILIDAD          
            
Declare CU_TP_MVTO_CNTB_Q20_1 Cursor             
For            
Select T1.CO_CNTA_EMPR, ISNULL(T1.TI_AUXI_EMPR, ''), ISNULL(T1.CO_AUXI_EMPR, ''),             
       ISNULL(T1.TI_DOCU, ''), ISNULL(T1.NU_DOCU, ''), T1.FE_ASTO_CNTB, T1.NU_ANNO,             
       T1.NU_MESE, T1.CO_OPRC_CNTB, T1.NU_ASTO, T1.TI_OPER, T1.IM_MVTO_CNTB,             
       T1.IM_MVTO_ORIG, T1.FA_CAMB, T2.ST_CNTA_CTES, t1.ST_DIFE_CAMB            
From TXMVTO_CNTB T1, TMPLAN_EMPR T2            
Where T1.CO_EMPR = @ISCO_EMPR            
  And T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR            
  And T1.NU_ANNO = @INNU_ANNO            
  And T1.NU_MESE <= @INNU_MESE              
  And T1.CO_CNTA_EMPR >= @ISCO_CNTA_INIC            
  And T1.CO_CNTA_EMPR <= @ISCO_CNTA_FINA            
  And T1.SI_MVTO_CNTB = 'APR'            
  And T2.CO_EMPR = T1.CO_EMPR            
  And T2.NU_ANNO = 9999            
  And T2.CO_CNTA_EMPR = T1.CO_CNTA_EMPR            
  And T2.CO_MONE <> @VSCO_MONE            
  And T2.ST_CNTA_MONE = 'S'          
ORDER BY T1.CO_CNTA_EMPR, T1.TI_AUXI_EMPR, T1.CO_AUXI_EMPR, T1.TI_DOCU, T1.NU_DOCU,            
          T1.NU_ANNO, T1.NU_MESE, T1.FE_ASTO_CNTB, T1.CO_OPRC_CNTB, T1.NU_ASTO              
            
 Open CU_TP_MVTO_CNTB_Q20_1            
 Fetch CU_TP_MVTO_CNTB_Q20_1 into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,             
                       @CSTI_DOCU, @CSNU_DOCU, @CDFE_ASTO_CNTB, @CNNU_ANNO,             
                       @CNNU_MESE, @CSCO_OPRC_CNTB, @CSNU_ASTO, @CSTI_OPER,             
                       @CNIM_MVTO_CNTB, @CNIM_MVTO_ORIG, @CNFA_CAMB, @CSST_CNTA_CTES, @CSST_DIFE_CAMB            
            
 If @CSST_CNTA_CTES = 'CTA'            
    SELECT @VSDE_REGI = @CSCO_CNTA_EMPR             
 Else If @CSST_CNTA_CTES = 'AUX'            
    SELECT @VSDE_REGI = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR            
 If @CSST_CNTA_CTES = 'DOC'            
    SELECT @VSDE_REGI = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR + @CSTI_DOCU +             
                        @CSNU_DOCU            
            
 Select @VSST_STAT = 'S'           
             
 While @@Fetch_status = 0            
 Begin            
        
  If @CSST_CNTA_CTES = 'CTA'            
     SELECT @VSDE_REGI_CAMB = @CSCO_CNTA_EMPR             
  If @CSST_CNTA_CTES = 'AUX'            
     SELECT @VSDE_REGI_CAMB = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR            
  If @CSST_CNTA_CTES = 'DOC'            
     SELECT @VSDE_REGI_CAMB = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR + @CSTI_DOCU +             
                              @CSNU_DOCU            
            
  If @VSDE_REGI != @VSDE_REGI_CAMB            
  Begin            
    SELECT  @VNFA_CAMB_FINA = Isnull(PATINDEX(T1.ST_CNTA_CAMB, 'COM') * T2.FA_CAMB_CMPR +            
            PATINDEX(T1.ST_CNTA_CAMB, 'VEN') * T2.FA_CAMB_VNTA, 1)/          
            IsNull(Isnull(PATINDEX(T1.ST_CNTA_CAMB, 'COM') * @VNFA_CMPR_CNTB +            
            PATINDEX(T1.ST_CNTA_CAMB, 'VEN') * @VNFA_VNTA_CNTB, 1), 1),            
            @VNFA_CMPR_REFE = IsNull(FA_CAMB_CMPR, 1)/@VNFA_CMPR_CNTB,           
            @VNFA_VNTA_REFE = IsNull(FA_CAMB_VNTA, 1)/@VNFA_VNTA_CNTB               
    From  TMPLAN_EMPR T1, TCFACT_CIER T2            
    Where T1.CO_EMPR  = @ISCO_EMPR          
    AND T1.NU_ANNO = 9999            
    And T1.CO_CNTA_EMPR = @VSCO_CNTA_EMPR_0001            
    AND T1.CO_MONE <> @VSCO_MONE            
    And T2.NU_ANNO = @INNU_ANNO            
    AND T2.NU_MESE = @INNU_MESE            
    And T2.CO_MONE = T1.CO_MONE            
            
    SELECT @VNIM_FINA_ORIG = Isnull(@VNIM_PROV_ORIG, 0)            
    SELECT @VNIM_FINA_CNTB = Isnull(@VNIM_PROV_CNTB, 0)            
            
    SELECT @VNIM_ANTE_ORIG = Isnull(@VNIM_FINA_ORIG +             
                            (PATINDEX(@VSTI_OPER_0002, 'ABO') -             
                             PATINDEX(@VSTI_OPER_0002, 'CAR')) * @VNIM_MVTO_ORIG_0001, 0)            
            
    SELECT @VNIM_ANTE_CNTB = Isnull(@VNIM_FINA_CNTB +             
                            (PATINDEX(@VSTI_OPER_0002, 'ABO') -             
                             PATINDEX(@VSTI_OPER_0002, 'CAR')) * @VNIM_MVTO_CNTB_0001, 0)            
          
-- SI ES CTA DE BANCO ENTONCES EVALUA SALDOS PARA OBTENER EL FACTOR DE CAMBIO          
 Select @VNNU_REGI = 0          
 Select @VNNU_REGI = Count(*)           
 From TTIDEN_CNTA          
 Where ID_CNTA = '021'           
 And CO_EMPR = @ISCO_EMPR          
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR          
 And CO_CNTA_EMPR = @VSCO_CNTA_EMPR_0001          
          
 If @VNNU_REGI = 1           
  Begin          
   If Round(@VNIM_ANTE_ORIG,2) - Round(@VNIM_ANTE_CNTB, 2) >=  0           
     Select  @VNFA_CAMB_FINA =  @VNFA_VNTA_REFE          
   Else          
     Select  @VNFA_CAMB_FINA =  @VNFA_CMPR_REFE          
  End          
-- FIN SI ES CTA DE BANCO ENTONCES EVALUA SALDOS PARA OBTENER EL FACTOR DE CAMBIO          
          
    If @ISTI_OPER = 'T' Or (@ISTI_OPER = 'P' and @VSCO_OPRC_AJUS  = @ISCO_OPER)          
      INSERT INTO #TWMVTO_CNTB_Q20_1 (NU_MESE, CO_OPRC_CNTB, NU_ASTO, CO_CNTA_EMPR, TI_AUXI_EMPR,            
                                     CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FA_CAMB, IM_PROV_ORIG,             
                                     IM_PROV_CNTB, IM_ANTE_ORIG, IM_ANTE_CNTB, IM_AJUS_CNTB,             
                                     FA_CAMB_FINA, IM_SALD_ORIG, IM_SALD_CNTB)            
        VALUES (@INNU_MESE, @VSCO_OPRC_AJUS, @VSNU_ASTO_0001, @VSCO_CNTA_EMPR_0001, @VSTI_AUXI_EMPR_0001,             
                @VSCO_AUXI_EMPR_0001, @VSTI_DOCU_0001, @VSNU_DOCU_0001, @VNFA_CAMB_PROV,             
                @VNIM_PROV_ORIG, @VNIM_PROV_CNTB, @VNIM_ANTE_ORIG, @VNIM_ANTE_CNTB,             
                @VNIM_AJUS, @VNFA_CAMB_FINA, @VNIM_FINA_ORIG, @VNIM_FINA_CNTB)            
        
   SELECT @VNIM_ANTE_ORIG = 0.00, @VNIM_ANTE_CNTB = 0.00, @VNIM_AJUS = 0.00,             
          @VNFA_CAMB_FINA = 1.00, @VNIM_FINA_ORIG = 0.00, @VNIM_FINA_CNTB = 0.00,             
          @VNIM_PROV_CNTB = 0.00, @VNIM_PROV_ORIG = 0.00            
            
   If @CSST_CNTA_CTES = 'CTA'            
      SELECT @VSDE_REGI = @CSCO_CNTA_EMPR             
   If @CSST_CNTA_CTES = 'AUX'            
      SELECT @VSDE_REGI = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR            
   If @CSST_CNTA_CTES = 'DOC'            
      SELECT @VSDE_REGI = @CSCO_CNTA_EMPR + @CSTI_AUXI_EMPR + @CSCO_AUXI_EMPR + @CSTI_DOCU + @CSNU_DOCU            
  END            
            
----------------------------------            
            
   Select  @VNFA_CAMB_PROV = @CNFA_CAMB,             
           @VNIM_PROV_ORIG = @VNIM_PROV_ORIG +             
           Isnull(@CNIM_MVTO_ORIG * (PATINDEX(@CSTI_OPER, 'CAR') - PATINDEX(@CSTI_OPER, 'ABO')), 0),            
           @VNIM_PROV_CNTB = @VNIM_PROV_CNTB +             
           Isnull(@CNIM_MVTO_CNTB * (PATINDEX(@CSTI_OPER, 'CAR') - PATINDEX(@CSTI_OPER, 'ABO')), 0)            
            
   Select @VSCO_CNTA_EMPR_0001 = @CSCO_CNTA_EMPR, @VSTI_AUXI_EMPR_0001 = @CSTI_AUXI_EMPR,             
          @VSCO_AUXI_EMPR_0001 = @CSCO_AUXI_EMPR, @VSTI_DOCU_0001 = @CSTI_DOCU,             
          @VSNU_DOCU_0001 = @CSNU_DOCU,           @VDFE_ASTO_CNTB_0001 = @CDFE_ASTO_CNTB,             
          @VNNU_ANNO_0001 = @CNNU_ANNO,           @VNNU_MESE_0001 = @CNNU_MESE,             
          @VSCO_OPRC_CNTB_0001 = @CSCO_OPRC_CNTB, @VSNU_ASTO_0001 = @CSNU_ASTO,             
          @VSTI_OPER_0001 = @CSTI_OPER,           @CNFA_CAMB_0001 = @CNFA_CAMB        
           
            
--   If (@VSCO_OPRC_CNTB = @CSCO_OPRC_CNTB Or @VSCO_OPRC_PEND = @CSCO_OPRC_CNTB ) and (@CNNU_MESE = @INNU_MESE)        
-- SI ES DIF DE CAMBIO SACA EL IMPORTE DE AJUSTE DEL ASIENTO DE AJUSTE     
   If (@CSST_DIFE_CAMB = 'S') and (@CNNU_MESE = @INNU_MESE)        
     Begin            
      Select @VNIM_MVTO_CNTB_0001 = @CNIM_MVTO_CNTB, @VNIM_MVTO_ORIG_0001 = @CNIM_MVTO_ORIG            
      Select @VNIM_AJUS = Isnull((PATINDEX(@VSTI_OPER_0001, 'CAR') - PATINDEX(@VSTI_OPER_0001, 'ABO')) * @VNIM_MVTO_CNTB_0001, 0)            
      Select @VSCO_OPRC_AJUS = @CSCO_OPRC_CNTB          
      Select @VSTI_OPER_0002 = @VSTI_OPER_0001          
     End        
                
   Fetch CU_TP_MVTO_CNTB_Q20_1 into @CSCO_CNTA_EMPR, @CSTI_AUXI_EMPR, @CSCO_AUXI_EMPR,             
                       @CSTI_DOCU, @CSNU_DOCU, @CDFE_ASTO_CNTB, @CNNU_ANNO,             
                       @CNNU_MESE, @CSCO_OPRC_CNTB, @CSNU_ASTO, @CSTI_OPER,             
                       @CNIM_MVTO_CNTB, @CNIM_MVTO_ORIG, @CNFA_CAMB, @CSST_CNTA_CTES, @CSST_DIFE_CAMB            
 End            
 Close CU_TP_MVTO_CNTB_Q20_1            
 Deallocate CU_TP_MVTO_CNTB_Q20_1            
            
 Select  @VNFA_CAMB_FINA = Isnull(PATINDEX(T1.ST_CNTA_CAMB, 'COM') * T2.FA_CAMB_CMPR +            
         PATINDEX(T1.ST_CNTA_CAMB, 'VEN') * T2.FA_CAMB_VNTA, 1)/          
         IsNull(Isnull(PATINDEX(T1.ST_CNTA_CAMB, 'COM') * @VNFA_CMPR_CNTB +            
         PATINDEX(T1.ST_CNTA_CAMB, 'VEN') * @VNFA_VNTA_CNTB, 1), 1),            
         @VNFA_CMPR_REFE = IsNull(FA_CAMB_CMPR, 1)/@VNFA_CMPR_CNTB,           
         @VNFA_VNTA_REFE = IsNull(FA_CAMB_VNTA, 1)/@VNFA_VNTA_CNTB              
 From  TMPLAN_EMPR T1, TCFACT_CIER T2            
 Where T1.CO_EMPR  = @ISCO_EMPR            
 And   T1.NU_ANNO = 9999            
 And   T1.CO_CNTA_EMPR = @VSCO_CNTA_EMPR_0001            
 And   T1.CO_MONE <> @VSCO_MONE            
 And   T2.NU_ANNO = @INNU_ANNO            
 And   T2.NU_MESE = @INNU_MESE            
 And   T2.CO_MONE = T1.CO_MONE            
          
 SELECT @VNIM_FINA_ORIG = Isnull(@VNIM_PROV_ORIG, 0)            
 SELECT @VNIM_FINA_CNTB = Isnull(@VNIM_PROV_CNTB, 0)            
            
 SELECT @VNIM_ANTE_ORIG = Isnull(@VNIM_FINA_ORIG +             
                         (PATINDEX(@VSTI_OPER_0002, 'ABO') -             
                          PATINDEX(@VSTI_OPER_0002, 'CAR')) * @VNIM_MVTO_ORIG_0001, 0)            
            
 SELECT @VNIM_ANTE_CNTB = Isnull(@VNIM_FINA_CNTB +             
                         (PATINDEX(@VSTI_OPER_0002, 'ABO') -            
                          PATINDEX(@VSTI_OPER_0002, 'CAR')) * @VNIM_MVTO_CNTB_0001, 0)          
        
-- SI ES CTA DE BANCO ENTONCES EVALUA SALDOS PARA OBTENER EL FACTOR DE CAMBIO          
 Select @VNNU_REGI = 0          
        
 Select @VNNU_REGI = Count(*)           
 From TTIDEN_CNTA          
 Where ID_CNTA = '021'           
 And CO_EMPR = @ISCO_EMPR          
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR          
 And CO_CNTA_EMPR = @VSCO_CNTA_EMPR_0001          
          
 If @VNNU_REGI = 1           
   Begin          
    If Round(@VNIM_ANTE_ORIG,2) - Round(@VNIM_ANTE_CNTB, 2) >=  0           
      Select  @VNFA_CAMB_FINA =  @VNFA_VNTA_REFE          
    Else          
      Select  @VNFA_CAMB_FINA =  @VNFA_CMPR_REFE          
   End          
-- FIN SI ES CTA DE BANCO ENTONCES EVALUA SALDOS PARA OBTENER EL FACTOR DE CAMBIO          
        
          
 If @ISTI_OPER = 'T' Or (@ISTI_OPER = 'P' and @VSCO_OPRC_AJUS  = @ISCO_OPER)        
   INSERT INTO #TWMVTO_CNTB_Q20_1(NU_MESE, CO_OPRC_CNTB, NU_ASTO, CO_CNTA_EMPR, TI_AUXI_EMPR,          
                              CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FA_CAMB, IM_PROV_ORIG,          
                        IM_PROV_CNTB, IM_ANTE_ORIG, IM_ANTE_CNTB, IM_AJUS_CNTB,          
                              FA_CAMB_FINA, IM_SALD_ORIG, IM_SALD_CNTB)          
    VALUES (@INNU_MESE, @VSCO_OPRC_AJUS, @VSNU_ASTO_0001, @VSCO_CNTA_EMPR_0001, @VSTI_AUXI_EMPR_0001,          
            @VSCO_AUXI_EMPR_0001, @VSTI_DOCU_0001, @VSNU_DOCU_0001, @VNFA_CAMB_PROV,          
            @VNIM_PROV_ORIG, @VNIM_PROV_CNTB, @VNIM_ANTE_ORIG, @VNIM_ANTE_CNTB,          
            @VNIM_AJUS, @VNFA_CAMB_FINA, @VNIM_FINA_ORIG, @VNIM_FINA_CNTB)            
        
IF @ISTI_INFO = 'D'            
BEGIN            
  IF @ISTI_ORDE ='1'             
   SELECT NU_MESE, CO_OPRC_CNTB, NU_ASTO, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
         TI_DOCU,  NU_DOCU,  ISNULL(IM_ANTE_ORIG,0), ISNULL(IM_ANTE_CNTB,0),             
      FA_CAMB_FINA, ISNULL(IM_AJUS_CNTB,0), ISNULL(IM_SALD_ORIG,0),             
  ISNULL(IM_SALD_CNTB,0)            
   FROM #TWMVTO_CNTB_Q20_1         
   Where IM_AJUS_CNTB <> 0        
   ORDER BY CO_CNTA_EMPR, NU_ASTO,  TI_AUXI_EMPR, CO_AUXI_EMPR,TI_DOCU, NU_DOCU            
            
  IF @ISTI_ORDE ='2'             
   SELECT NU_MESE, CO_OPRC_CNTB, NU_ASTO, CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR,            
         TI_DOCU,  NU_DOCU,  ISNULL(IM_ANTE_ORIG,0), ISNULL(IM_ANTE_CNTB,0),             
         FA_CAMB_FINA,  ISNULL(IM_AJUS_CNTB,0), ISNULL(IM_SALD_ORIG,0),              
         ISNULL(IM_SALD_CNTB,0)            
   FROM #TWMVTO_CNTB_Q20_1            
   Where IM_AJUS_CNTB <> 0        
   ORDER BY CO_CNTA_EMPR, TI_AUXI_EMPR, CO_AUXI_EMPR, NU_ASTO,TI_DOCU, NU_DOCU            
END            
ELSE IF @ISTI_INFO = 'R'            
  SELECT T1.CO_CNTA_EMPR, MAX(T2.DE_CNTA_EMPR), SUM(ISNULL(T1.IM_ANTE_ORIG,0)),             
        SUM(ISNULL(T1.IM_ANTE_CNTB,0)), MAX(T1.FA_CAMB_FINA), SUM(ISNULL(T1.IM_AJUS_CNTB,0)),            
        SUM(ISNULL(T1.IM_SALD_ORIG,0)), SUM(ISNULL(T1.IM_SALD_CNTB,0))            
  FROM #TWMVTO_CNTB_Q20_1 T1, TMPLAN_EMPR T2            
  WHERE T2.CO_EMPR = @ISCO_EMPR            
  AND T2.NU_ANNO = 9999            
  AND T2.CO_CNTA_EMPR = T1.CO_CNTA_EMPR            
  GROUP BY T1.CO_CNTA_EMPR            
  having SUM(ISNULL(T1.IM_AJUS_CNTB,0)) <> 0        
  ORDER BY T1.CO_CNTA_EMPR            
            
 Return            
/*--------------------------------- Fin -------------------------------------*/    


GO
